// const express = require("express")
// const app = express();
// const path = require("path");
// // 查询学生数据接口   处理query传参
// app.get('/user', (req, res) => {
//     const {
//         userId
//     } = req.query;
//     console.log(userId);
//     // 如果查询失败
//     if (userId !== '001') {
//         return res.send({
//             code: 10001,
//             msg: '查询失败',
//             data: null
//         })
//     }
//     // 查询成功
//     res.send({
//         code: 10000,
//         msg: '查询成功',
//         data: {
//             name: 'zheng',
//             age: 19,
//             sex: '男'
//         }
//     })
// })
// // 处理path传参
// app.get('/userInfo/:userId',(req,res)=>{
//     console.log(req.params.userId);
//     const {
//         userId
//       } = req.params;


//       //如果查询失败
//       if (userId !== "001") {
//         return res.send({
//           code: 10001,
//           msg: "查询失败",
//           data: null
//         })
//       }


//       //查询成功 响应
//       res.send({
//         code: 10000,
//         msg: "查询成功",
//         data: {
//           name: "张三",
//           age: 18,
//           sex: "男"
//         }
//       })
// })



// // 静态资源部署
// // get传参方式
// app.get("/1", (req, res) => {
//     const filePath = path.resolve(__dirname,"./1基础的get请求.html");
//     res.sendFile(filePath);
// })
// // poth传参方式
// app.get("/2", (req, res) => {
//     const filePath = path.resolve(__dirname,"./2get请求poth传参方式.html");
//     res.sendFile(filePath);
// })


// app.listen(3000, () => {
//     console.log("服务器请求成功 请访问 http://127.0.0.1:3000");
// })






// const express = require('express')
// const app = express()
// const path = require('path')

// get查询信息接口
// app.get("/user", (req, res) => {
//     const {
//         userId
//     } = req.query

//     if (userId !== "001") {
//         return res.send({
//             code:10001,
//             msg:"查询失败",
//             data:null
//         })
//     }

//     res.send({
//         code:10000,
//         msg:'查询成功',
//         data:{
//             name:'zheng',
//             age:18,
//             sex:'男'
//         }
//     })

// })

// path请求数据
// app.get("/userInfo/:userId", (req, res) => {
//     const {
//         userId
//     } = req.params
//     if (userId !== '001') {
//         return res.send({
//             code: 10001,
//             msg: "查询失败",
//             data: null
//         })
//     }

//     res.send({
//         code: 10000,
//         msg: "查询成功",
//         data: {
//             name: "张三",
//             age: 18,
//             sex: "男"
//         }
//     })
// })

//    get页面数据
// app.get('/1', (req, res) => {
//     const filepath = path.resolve(__dirname, './1基础的get请求.html')
//     res.sendFile(filepath)
// })

// path请求页面数据
// app.get('/2', (req, res) => {
//     const filepath = path.resolve(__dirname, './2get请求poth传参方式.html')
//     res.sendFile(filepath)
// })


// app.listen(3000, () => {
//     console.log('服务器启动成功');
// })




const express = require('express')
const app = express()
const path = require('path')

//处理body请求体的中间件
// app.use(express.urlencoded())
// app.use(express.json())

//手写处理body请求的中间件
let o
app.use((req, res, next) => {
    // console.log(req);
    let dataStr = ""
    req.on("data", (chunk) => {
        // console.log(chunk.toString());//name=laoli&age=18&sex=男
        dataStr += chunk.toString()
    })

    req.on("end", () => {
        // // 写法1
        //  o = {};
        // dataStr.split("&").forEach(item => {
        //     //["name=laoli","age=123"，sex=男]
        //   const [key, value] = item.split("=") //["name","laoli"]  ["age","18"] ["sex","男"]

        //   o[key] = value;
        // })
        // console.log(o, "oooooo");

        //写法2
        // ["name=laoli","age=123"，sex=男]
        const data = dataStr.split("&").reduce((prev, current) => {
            const [key, value] = current.split("=");
            prev[key] = value;
            return prev;
        }, {})

        console.log(data, "data");

        //再中间件中，得到请求体body的值并处理为一个对象 添加给req的body属性上
        req.body = data;
        next()

    })

    //   req.body = o;

    //   next()
}) 

app.get('/user', (req, res) => {
    const {
        userId
    } = req.query
    if (userId !== '001') {
        return res.send({
            code: 10001,
            msg: "查询失败",
            data: null
        })
    }

    res.send({
        code: 10000,
        msg: "查询成功",
        data: {
            name: "张三",
            age: 18,
            sex: "男"
        }
    })
})

app.get('/userInfo/:userId', (req, res) => {
    const {
        userId
    } = req.params
    if (userId !== '001') {
        return res.send({
            code: 10001,
            msg: "查询失败",
            data: null
        })
    }

    res.send({
        code: 10000,
        msg: "查询成功",
        data: {
            name: "张三",
            age: 18,
            sex: "男"
        }
    })
})

app.post("/adduser", (req, res) => {
    // console.log("adduser");
    console.log(req.body, "req.body");
    const {
        name,
        age,
        sex
    } = req.body;

    if (!name || !age || !sex) {
        return res.send({
            code: 10001,
            mes: "添加失败",
            data: null
        })
    }

    res.send({
        code: 10000,
        mes: "添加成功",
        data: null
    })
})

app.get('/1', (req, res) => {
    const filepath = path.resolve(__dirname, './1基础的get请求.html')
    res.sendFile(filepath)
})


app.get('/2', (req, res) => {
    const filepath = path.resolve(__dirname, './2get请求poth传参方式.html')
    res.sendFile(filepath)
})

app.get('/3', (req, res) => {
    const filepath = path.resolve(__dirname, './3post亲求.html')
    res.sendFile(filepath)
})




app.listen(3000, () => {
    console.log('服务启动成功');
})